import java.util.Iterator;

public class Kassa {
    private KassaRij kassarij;
    private int aantalVerwerkteArtikelen;
    private double totaalPrijsVerwerkteArtikelen;
 
    /**
     * Constructor
     */
    public Kassa(KassaRij kassarij) 
    {
        this.kassarij = kassarij;
    }

    /**
     * Deze methode vraagt het aantal artikelen en de totaalprijs op.
     * De implementatie wordt later vervangen door een echte betaling 
     * door de persoon. 
     * @param persoon die moet afrekenen
     */
    public void rekenAf(Persoon persoon) 
    {
        double totaalPrijs = 0;
        Iterator<Artikel> it = persoon.getDienblad().getArtikelen();
        while (it.hasNext())
        {
            Artikel artikel = it.next();
            totaalPrijs += artikel.getPrijsArtikel();
            this.aantalVerwerkteArtikelen++;
        }
        this.totaalPrijsVerwerkteArtikelen += totaalPrijs;
    }

    /**
     * Deze methode geeft het aantal artikelen dat de kassa 
     * heeft gepasserd, vanaf het moment dat de methode resetWaarden 
     * is aangeroepen.
     * @return aantal artikelen
     */
    public int aantalArtikelen() 
    {
       return this.aantalVerwerkteArtikelen;
    }

    /**
     * Deze methode geeft het totaalbedrag van alle artikelen die
     * de kassa zijn gepasseerd, vanaf het moment dat de methode resetKassa 
     * is aangeroepen.
     * @return hoeveelheid geld in de kassa
     */
    public double hoeveelheidGeldInKassa() 
    {
        return this.totaalPrijsVerwerkteArtikelen;
    }

    /**
     * Deze methode reset de waarden van het aantal gepasseerde artikelen en 
     * de totale hoeveelheid geld in de kassa.
     */
    public void resetKassa() 
    {
        this.aantalVerwerkteArtikelen = 0;
        this.totaalPrijsVerwerkteArtikelen = 0.00;
    }
}
